home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / otm3d095 / 3dtools.nfo < prev    next >
Encoding:
Text File  |  1994-12-14  |  9.4 KB  |  202 lines

  1.         3dtools v0.95 released 12-14-94
  2.  
  3.         C++ 3d engine
  4.         by Voltaire/OTM
  5.         all source Copyright (C) 1994 Zach Mortensen
  6.  
  7.         email -
  8.         mortens1@nersc.gov
  9.  
  10. CONTENTS -
  11.  
  12.         3DTOOLS.NFO     - This file
  13.         OTM-94.NFO      - How to contact OTM
  14.  
  15.         OTMPOLY.DOC     - Text description of poly filling techniques
  16.  
  17.         MODE13H.ASM     - Video library and graphics primitives
  18.         MODE13H.H       - Header file for MODE13H.ASM
  19.  
  20.         3DTOOLS.CPP     - 3d engine
  21.         3DTOOLS.H       - Header file for 3DTOOLS.CPP
  22.         SIN.CPP         - Integer sin/cos functions
  23.         SIN.H           - Header file for the same
  24.  
  25.         DOS4GW.EXE      - DOS extender
  26.         SHOWASC.EXE     - Demo application (needs DOS4GW.EXE to run)
  27.         SHOWASC.CPP     - Source for the above
  28.         *.ASC           - 3dStudio .ASC files for use with SHOWASC
  29.  
  30.  
  31. HISTORY -
  32.  
  33.         This code is 100% original.  Nothing has been ripped, stolen,
  34.         borrowed, or in any way taken from anyone else.  Maybe that
  35.         is why it has taken me so long to get 3dtools to the point
  36.         where it is releasable; and maybe that is the reason why
  37.         there is still so much to be done here.  I started from
  38.         scratch around 6 months ago, daydreaming of 3d math in my
  39.         calculus class (later on I realized I should've been paying
  40.         more attention...heheh).  I have worked on this code in my spare
  41.         time for the past 4 months or so; and now here I am with, well,
  42.         SOMETHING to show for all my work.
  43.  
  44.         If you have read this far, you are to be congratulated.  Most coders
  45.         I know would stop after getting to the "C++" part on the third line.
  46.         If you are DYING to know, object oriented design is the best thing
  47.         that ever happened to coding.  The fact that you don't have to
  48.         "re-invent the wheel every time you want to drive your car" is
  49.         significant.  You see, with object oriented design (yes, modular
  50.         code is the most simple form of it), you spend some time developing
  51.         tools, and then you can use them effortlessly if you have designed
  52.         them well.  This allows you to spend time writing new code instead
  53.         of rewriting what you have already written...it just makes sense.
  54.  
  55.  
  56. A BIT OF PHILOSOPHY -
  57.  
  58.         So I'm in a philosophical mood right now...big deal.  I have noticed
  59.         a big change in the demo scene over the past two years.  In late 1992
  60.         to early 1993, the scene was dominated by a few groups, most of which
  61.         simply knew how to do things that no one else did in terms of coding.
  62.         Vectors, voxels, texture mapping, quality music code, fractals,
  63.         gouraud shading...all these things were a big deal back then because
  64.         very few individuals knew how they were done.  As time has passed and
  65.         knowledge has spread, groups are popping up all over the place that
  66.         have a lot of knowledge available to them.  Since all of the
  67.         afforementioned coding secrets have been made available, these newer
  68.         groups are able to compete on a level which was unattainable just two
  69.         years ago.  So, seeing as how we all know how to code just about
  70.         everything now, what is going to separate the good groups from the
  71.         mediocre ones in the future?
  72.  
  73.         The answer is simple: creativity.  We all know the same tricks now,
  74.         but not all of us have the ability to apply our knowledge in a
  75.         creative way.  This should be somewhat of a wake up call to all the
  76.         groups out there who have been very succesful in the past - the
  77.         tables are about to turn.  New groups that simply could not have kept
  78.         up in the past now know all you know about coding.  The novelty of
  79.         your code alone will not be able to carry you through the next few
  80.         years because there IS no novel code any more.  These newer groups,
  81.         because of the greater creativity they posess, are going to pull
  82.         quite a coup in the next few years.
  83.  
  84.         So what interest do I have in all of this?  Well, I'm a demo
  85.         enthusiast.  I really enjoy seeing quailty productions, original
  86.         productions.  Honestly, I have seen only a few in the past
  87.         year that really qualify as original.  Verses by EMF is the best
  88.         example that comes to mind.  When we saw the infamous Bill Gates
  89.         morpher, we all said "WOW, that was funny...hmmm, I know how to
  90.         texture map, I know how to interpolate points...WHY DIDN'T I THINK
  91.         OF THAT?"  The answer once again is simple: creativity.
  92.  
  93.         I guess my deepest desire is to see more productions like Verses, to
  94.         sit back and really enjoy one instead of saying "I've seen that 16
  95.         times before..."  I believe this can best be accomplished by putting
  96.         the best possible tools in the hands of as many people as we can;
  97.         because the more people there are that have these tools, the better
  98.         the chance that one of them will do something really spectacular with
  99.         them that has never been done before.
  100.  
  101.         So here is my appeal - to everyone out there who is NOT part of a
  102.         big name demo group, to everyone out there who HASN'T ever won
  103.         anything at a compo, let's spread as much code around as we can.
  104.         Only by allowing everyone to start on equal ground will we see who
  105.         REALLY ARE the best, the most creative groups.
  106.  
  107.  
  108. REVISION NOTES -
  109.  
  110.         This newest version incoporates z-buffering, which is by far the 
  111.         biggest change from v0.90.  Consequently, all of the z-buffered
  112.         drawing routines are the most highly optimized in this version.  I
  113.         am aware of the fact that there are optimizations present in the 
  114.         z-buffered routines which are absent from the regular drawing
  115.         routines, but I really don't care at this point.  I am planning on
  116.         going back over the old routines and bringing them up to snuff, but
  117.         I was in a tremendous rush to get this version released as soon as
  118.         possible.
  119.  
  120.         Matrix rotation was implemented; thanks to ShadowH for providing me
  121.         with matrix equations that actually WORK!  The point3d::matRotate()
  122.         function requires 9 multiplies and 3 shifts, compared with 12
  123.         multiplies and 3 shifts found in the point3d::localRotate() function.
  124.         The speed increase is especially noticable when rotating large 
  125.         gouraud shaded objects, in which case every rotation processes
  126.         2 * numPoints + numPolys vectors.
  127.  
  128.         There are a lot of other noticable optimizations.  Foremost is the 
  129.         fact that a dot product is no longer calcualted to eliminate planes,
  130.         due to the fact that I finally sat down and thought about all the
  131.         math I have been using for such a long time.
  132.  
  133.         initSinCos() is called when the world object is initialized at
  134.         run time, so calling it explicitly at the start of the program is
  135.         superfluous.
  136.  
  137.         SHOWASC now accepts two parameters, shading and distance.  Type
  138.         SHOWASC with no arguments to get this info -
  139.  
  140.         USAGE:
  141.  
  142.         showasc <filename.asc> <shading> <distance>
  143.  
  144.         shading: 0 = none; 1 = Lambert; 2 = Gouraud
  145.         distance: the greater the distance, the smaller the object will be
  146.  
  147.         e.g.
  148.         showasc duck.asc 2 20000
  149.  
  150.         Running showasc <filename.asc> with no parameters will default to
  151.         gouraud shading at a distance of 4096.
  152.  
  153.         e.g.        
  154.         showasc b1.asc
  155.  
  156.  
  157. REVISION HISTORY -
  158.  
  159.         11-01-94        F∙I∙R∙S∙T  R∙E∙L∙E∙A∙S∙E  Version 0.90ß
  160.  
  161.         12-13-94        Version 0.95
  162.  
  163.                         Bugfixes - NONE <whew!>
  164.  
  165.                         New features - z-buffering, matrix rotation,
  166.                         all around optimization (too much to list).
  167.  
  168.  
  169. GREETS -
  170.  
  171.  
  172.         Siri                    - THREE words...I LOVE YOU!
  173.         Hurricane/OTM           - two words...PK!
  174.         Zilym Limms/OTM         - one word...PMODE ;)
  175.         Nameshift/OTM           - thanks for drawing the alphabet .ASCs
  176.         Stalker/OTM             - for starting the BORK pandemic...w3 r00l
  177.         Supreme/OTM             - I want your new computer!
  178.         Tek/OTM                 - Horizon footbal rules :P
  179.         Alex Chalfin/OTM        - uhhh...handle? ;)
  180.         Patrick Aalto           - thanks for all the hints
  181.         Arnold, Hans, Lothar    - here's to 126 US gallons of inside jokes
  182.         SiL                     - for giving me the z-buffering idea
  183.         Tulip                   - thanks for duck.asc, I want one of Sonic! ;)
  184.         MainFrame               - we'll get all this 3d stuff right someday ;)
  185.         DarkShade               - for teaching me how to bit sort
  186.         Jailcoder               - for giving me something to shoot for...:)
  187.         Tran and DareDevil      - for PMODE/W
  188.         doom                    - ALRIGHT!  I RELEASED IT ALREADY! ;)
  189.         rbeer                   - insomniacs-R-us ;)
  190.         Juggler/XTC             - Voxel advice
  191.         ShadowH                 - thanks for the matrix equations
  192.         Moomin and Zep          - Hang in there...you guys will get it
  193.         StarScream
  194.         bri_acid
  195.         Houmi
  196.         GodHead
  197.         BEan_dIP
  198.         Codex Hammer
  199.         PhulAdder
  200.         Bone_
  201.         Opium
  202.